function [conv_ret,blocksStep2] = test_conv(in1,in2)

blockNumX = floor((length(in1)+31)/32);
blockNumY = floor((length(in2)+31)/32);

blocksStep1 = cell(blockNumX,blockNumY);

for ix = 1:blockNumX
    for iy = 1:blockNumY
        blocksStep1{ix,iy} = conv32_32(in1((32*ix - 31):(32*ix)),in2((32*iy - 31):(32*iy)));
    end
end

blocksStep2 = cell(blockNumY*2,blockNumX);

for ix = 1:blockNumX
    for iy = 1:(blockNumY + 1)
        currArr32 = zeros(1,32);
        if(iy<=blockNumY)
            currArr32 = blocksStep1{iy,ix}(1:32);
        end
        lastArr32 = zeros(1,32);
        if(iy>1)
            lastArr32 = blocksStep1{iy-1,ix}(33:64);
        end
        blocksStep2{iy+ix-1,ix} = currArr32+lastArr32;
    end
end

%size(blocksStep2)
%blockNumY,blockNumX

blocksStep3 = cell(blockNumY*2,1);
for i3=1:(blockNumY*2)
    blocksStep3{i3,1} = zeros(32,blockNumX);
    for ix = 1:blockNumX
        %testIndex = [i3,ix]  
        %if(i3 < blockNumY && ix < 4)%(blockNumX + blockNumY -1)
        blockSize = size(blocksStep2{i3,ix});
        if(blockSize(1)==0)
            blocksStep3{i3,1}(:,ix) = zeros(1,32);
        else
            blocksStep3{i3,1}(:,ix) = blocksStep2{i3,ix}(1,:);
        end
        %else
        %   blocksStep3{i3,1}(:,ix) = zeros(1,32);
        %end
    end
end


conv_ret = zeros(1,length(in1)+length(in2));

for i3=1:(blockNumY*2)
    for ix = 1:32
        conv_ret(i3*32-32 + ix) = sum(blocksStep3{i3,1}(ix,:));
    end
end

end
